﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using icoSPVenta.Datos.Conexion;
using icoSPVenta.Datos.Objetos;

namespace icoSPVenta.Session
{
  public class Utilerias
    {
      public static void InsertarObjeto(Type tipo, List<Campos> CamposInsertar)
      {
          Connection conn = new Connection(Session.CONNECTION_STRING);
          Base obj = System.Activator.CreateInstance(tipo, conn) as Base;
          conn.insertarObjeto(obj, CamposInsertar);
          conn.Close();
      }
      private static string ObtenerColeccionObjeto(Type tipo)
      {
          Connection conn = new Connection(Session.CONNECTION_STRING);
          Base obj = System.Activator.CreateInstance(tipo, conn) as Base;
          DataTable table = conn.obtenerColeccionObjeto(obj);

          string jTable = ToJSON(table);

          conn.Close();

          return jTable;
      }
      private static string ObetenerObjeto(int OidObjeto, Type type)
      {
          Connection conn = new Connection(Session.CONNECTION_STRING);
          Base obj = System.Activator.CreateInstance(type, conn) as Base;
          DataTable table = conn.obetenerObjeto(OidObjeto, obj);

          string Objeto = ToJSON(table);

          conn.Close();

          return Objeto;
      }
      private static void ActualizarObjeto(int Oid, Type type, List<Campos> CamposActualizar)
      {
          Connection conn = new Connection(Session.CONNECTION_STRING);
          Base obj = System.Activator.CreateInstance(type, conn) as Base;
          conn.actualizarObjeto(obj, Oid, CamposActualizar);
          conn.Close();
      }
      public static int ValidarObjeto(string Tabla,string Campo, string Valor)
      {
          Connection conn = new Connection(Session.CONNECTION_STRING);
          int Respuesta = conn.validarObjeto(conn, Tabla, Campo, Valor);
          conn.Close();
          return Respuesta;
          
      }
    
   
     

      private static string ToJSON(DataTable table)
      {
          System.Web.Script.Serialization.JavaScriptSerializer serializer = new

             System.Web.Script.Serialization.JavaScriptSerializer();
          List<Dictionary<string, object>> rows =
            new List<Dictionary<string, object>>();
          Dictionary<string, object> row = null;

          foreach (DataRow dr in table.Rows)
          {
              row = new Dictionary<string, object>();
              foreach (DataColumn col in table.Columns)
              {
                  if (dr[col] is System.DBNull)
                      row.Add(col.ColumnName.Trim(), "");
                  else
                      row.Add(col.ColumnName.Trim(), dr[col]);
              }
              rows.Add(row);
          }
          return serializer.Serialize(rows);
      }

      #region Validaciones
      //public static int ValidarNombreUsuario(string Valor)
      //{
      //    int resultado = ValidarObjeto(typeof(Usuario), Valor);
      //    return resultado;
      //}
      //public static int ValidarDescripcion(string Valor)
      //{
      //    int resultado = ValidarObjeto(typeof(Departamento), Valor);
      //    return resultado;
      //}
      //public static int ValidarCodigoProducto(string Valor)
      //{
      //    int resultado = ValidarObjeto(typeof(Producto), Valor);
      //    return resultado;
      //}
      #endregion

      #region Usuarios
      public static void InsertarUsuarios(string NombreUsuario, string ContrasenaUsuario, string Paterno, string Materno, string Nombre, bool Ventas, bool Administrar, bool Reportes, bool Catalogos, bool Consultas, bool DeshacerVenta)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "NombreUsuario", Valor = NombreUsuario });
          CamposInsertar.Add(new Campos() { Campo = "ContrasenaUsuario", Valor = ContrasenaUsuario });
          CamposInsertar.Add(new Campos() { Campo = "Paterno", Valor = Paterno });
          CamposInsertar.Add(new Campos() { Campo = "Materno", Valor = Materno });
          CamposInsertar.Add(new Campos() { Campo = "Nombre", Valor = Nombre });
          CamposInsertar.Add(new Campos() { Campo = "Ventas", Valor = Ventas });
          CamposInsertar.Add(new Campos() { Campo = "Administrar", Valor = Administrar });
          CamposInsertar.Add(new Campos() { Campo = "Reportes", Valor = Reportes });
          CamposInsertar.Add(new Campos() { Campo = "Catalogos", Valor = Catalogos });
          CamposInsertar.Add(new Campos() { Campo = "Consultas", Valor = Consultas });
          CamposInsertar.Add(new Campos() { Campo = "DeshacerVenta", Valor = DeshacerVenta });

          InsertarObjeto(typeof(Usuario), CamposInsertar);
      }
      public static string ObtenerUsuarios()
      {
          return ObtenerColeccionObjeto(typeof(Usuario));
      }
      public static string ObtenerUsuario(int OidUsuario)
      {
          return ObetenerObjeto(OidUsuario, typeof(Usuario));
      }
      public static void ActualizarUsuario(int Oid, string ContrasenaUsuario, string Paterno, string Materno, string Nombre, bool Ventas, bool Administrar, bool Reportes, bool Catalogos, bool Consultas, bool DeshacerVenta)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          //CamposActualizar.Add(new Campos() { Campo = "NombreUsuario", Valor = NombreUsuario });
          CamposActualizar.Add(new Campos() { Campo = "ContrasenaUsuario", Valor = ContrasenaUsuario });
          CamposActualizar.Add(new Campos() { Campo = "Paterno", Valor = Paterno });
          CamposActualizar.Add(new Campos() { Campo = "Materno", Valor = Materno });
          CamposActualizar.Add(new Campos() { Campo = "Nombre", Valor = Nombre });
          CamposActualizar.Add(new Campos() { Campo = "Ventas", Valor = Ventas });
          CamposActualizar.Add(new Campos() { Campo = "Administrar", Valor = Administrar });
          CamposActualizar.Add(new Campos() { Campo = "Reportes", Valor = Reportes });
          CamposActualizar.Add(new Campos() { Campo = "Catalogos", Valor = Catalogos });
          CamposActualizar.Add(new Campos() { Campo = "Consultas", Valor = Consultas });
          CamposActualizar.Add(new Campos() { Campo = "DeshacerVenta", Valor = DeshacerVenta });


          ActualizarObjeto(Oid, typeof(Usuario), CamposActualizar);
      }
      #endregion

      #region Cajas
      public static void InsertarCajas(int NumeroCaja, string Descripcion, bool Disponible, int OidUsuario, bool Ticket)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "NumeroCaja", Valor = NumeroCaja });
          CamposInsertar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });
          CamposInsertar.Add(new Campos() { Campo = "Disponible", Valor = Disponible });
          CamposInsertar.Add(new Campos() { Campo = "OidUsuario", Valor = OidUsuario });
          CamposInsertar.Add(new Campos() { Campo = "Ticket", Valor = Ticket });
        

          InsertarObjeto(typeof(Caja), CamposInsertar);
      }
      public static string ObtenerCajas()
      {
          return ObtenerColeccionObjeto(typeof(Caja));
       }
      public static string ObtenerCaja(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(Caja));
      }
      public static void ActualizarCaja(int Oid, int NumeroCaja, string Descripcion, bool Disponible, int OidUsuario, bool Ticket)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "NumeroCaja", Valor = NumeroCaja });
          CamposActualizar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });
          CamposActualizar.Add(new Campos() { Campo = "Disponible", Valor = Disponible });
          CamposActualizar.Add(new Campos() { Campo = "OidUsuario", Valor = OidUsuario });
          CamposActualizar.Add(new Campos() { Campo = "Ticket", Valor = Ticket });


          ActualizarObjeto(Oid, typeof(Caja), CamposActualizar);
      }
      #endregion

      #region Clientes
      public static void InsertarCliente(string Nombre, string Paterno, string Materno, string Direccion, int Telefono, string CorreoElectronico, int OidTipoDeVenta)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "Nombre", Valor = Nombre });
          CamposInsertar.Add(new Campos() { Campo = "Paterno", Valor = Paterno });
          CamposInsertar.Add(new Campos() { Campo = "Materno", Valor = Materno });
          CamposInsertar.Add(new Campos() { Campo = "Direccion", Valor = Direccion });
          CamposInsertar.Add(new Campos() { Campo = "Telefono", Valor = Telefono });
          CamposInsertar.Add(new Campos() { Campo = "CorreoElectronico", Valor = CorreoElectronico });
          CamposInsertar.Add(new Campos() { Campo = "OidTipoDeVenta", Valor = OidTipoDeVenta });


          InsertarObjeto(typeof(Cliente), CamposInsertar);
      }
          public static string ObtenerClientes()
      {
            return ObtenerColeccionObjeto(typeof(Cliente));      
          }
          public static string ObtenerCliente(int Oid)
          {
              return ObetenerObjeto(Oid, typeof(Cliente));
          }
          public static void ActualizarCliente(int Oid, string Nombre, string Paterno, string Materno, string Direccion, int Telefono, string CorreoElectronico, int OidTipoDeVenta)
          {
              List<Campos> CamposActualizar = new List<Campos>();
              CamposActualizar.Add(new Campos() { Campo = "Nombre", Valor = Nombre });
              CamposActualizar.Add(new Campos() { Campo = "Paterno", Valor = Paterno });
              CamposActualizar.Add(new Campos() { Campo = "Materno", Valor = Materno });
              CamposActualizar.Add(new Campos() { Campo = "Direccion", Valor = Direccion });
              CamposActualizar.Add(new Campos() { Campo = "Telefono", Valor = Telefono });
              CamposActualizar.Add(new Campos() { Campo = "CorreoElectronico", Valor = CorreoElectronico });
              CamposActualizar.Add(new Campos() { Campo = "OidTipoDeVenta", Valor = OidTipoDeVenta });


              ActualizarObjeto(Oid, typeof(Cliente), CamposActualizar);
          }
        #endregion

      #region Departamento
      public static void InsertarDepartamento(string Descripcion)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });


          InsertarObjeto(typeof(Departamento), CamposInsertar);
      }
      public static string ObtenerDepartamentos()
      {
          return ObtenerColeccionObjeto(typeof(Departamento));   
      }

      public static string ObtenerDepartamento(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(Departamento));
      }
      public static void ActualizarDepartamento(int Oid, string Descripcion)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });


          ActualizarObjeto(Oid, typeof(Departamento), CamposActualizar);
      }
      #endregion

      #region TipoPago
      public static void InsertarTipoPago(string Descripcion)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });


          InsertarObjeto(typeof(TipoPago), CamposInsertar);
      }

      public static string ObtenerTipoPagos()
      {
          return ObtenerColeccionObjeto(typeof(TipoPago)); 
      }

      public static string ObtenerTipoPago(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(TipoPago));
      }

      public static void ActualizarTipoPago(int Oid,string Descripcion)
      {
          List<Campos> CamposActualizar = new List<Campos>();

          CamposActualizar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });


          ActualizarObjeto(Oid, typeof(TipoPago), CamposActualizar);
      }
      #endregion

      #region UnidadMedida
      public static void InsertarUnidadMedida(string Descripcion)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });


          InsertarObjeto(typeof(UnidadMedida), CamposInsertar);
      }
      public static string ObtenerUnidadMedidas()
      {
          return ObtenerColeccionObjeto(typeof(UnidadMedida));
      }

      public static string ObtenerUnidadMedida(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(UnidadMedida));
      }
      public static void ActualizarUnidadMedida(int Oid, string Descripcion)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });


          ActualizarObjeto(Oid, typeof(UnidadMedida), CamposActualizar);
      }
      #endregion

      #region Productos
      public static void InsertarProducto(int CodigoProducto, string Descripcion, int OidUnidadMedida, int Cantidad, decimal PrecioUnitarioCompra, decimal PrecioUnitarioVenta, int OidDepartamento, int CantidadMinima, decimal IVA, decimal PrecioUnitarioMayoreo)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "CodigoProducto", Valor = CodigoProducto });
          CamposInsertar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });
          CamposInsertar.Add(new Campos() { Campo = "OidUnidadMedida", Valor = OidUnidadMedida });
          CamposInsertar.Add(new Campos() { Campo = "Cantidad", Valor = Cantidad });
          CamposInsertar.Add(new Campos() { Campo = "PrecioUnitarioCompra", Valor = PrecioUnitarioCompra });
          CamposInsertar.Add(new Campos() { Campo = "PrecioUnitarioVenta", Valor = PrecioUnitarioVenta });
          CamposInsertar.Add(new Campos() { Campo = "OidDepartamento", Valor = OidDepartamento });
          CamposInsertar.Add(new Campos() { Campo = "CantidadMinima", Valor = CantidadMinima });
          CamposInsertar.Add(new Campos() { Campo = "IVA", Valor = IVA });
          CamposInsertar.Add(new Campos() { Campo = "PrecioUnitarioMayoreo", Valor = PrecioUnitarioMayoreo });


          InsertarObjeto(typeof(Producto), CamposInsertar);
      }
      public static string ObtenerProductos()
      {
          return ObtenerColeccionObjeto(typeof(Producto)); 
      }

      public static string ObtenerProducto(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(Producto));
      }
      public static void ActualizarProducto(int Oid, int CodigoProducto, string Descripcion, int OidUnidadMedida, int Cantidad, decimal PrecioUnitarioCompra, decimal PrecioUnitarioVenta, int OidDepartamento, int CantidadMinima, decimal IVA, decimal PrecioUnitarioMayoreo)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "CodigoProducto", Valor = CodigoProducto });
          CamposActualizar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });
          CamposActualizar.Add(new Campos() { Campo = "OidUnidadMedida", Valor = OidUnidadMedida });
          CamposActualizar.Add(new Campos() { Campo = "Cantidad", Valor = Cantidad });
          CamposActualizar.Add(new Campos() { Campo = "PrecioUnitarioCompra", Valor = PrecioUnitarioCompra });
          CamposActualizar.Add(new Campos() { Campo = "PrecioUnitarioVenta", Valor = PrecioUnitarioVenta });
          CamposActualizar.Add(new Campos() { Campo = "OidDepartamento", Valor = OidDepartamento });
          CamposActualizar.Add(new Campos() { Campo = "CantidadMinima", Valor = CantidadMinima });
          CamposActualizar.Add(new Campos() { Campo = "IVA", Valor = IVA });
          CamposActualizar.Add(new Campos() { Campo = "PrecioUnitarioMayoreo", Valor = PrecioUnitarioMayoreo });


          ActualizarObjeto(Oid, typeof(Producto), CamposActualizar);
      }
      #endregion

      #region TipoDeVenta
      public static void InsertarTipoDeVenta(string Descripcion)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });


          InsertarObjeto(typeof(TipoDeVenta), CamposInsertar);
      }
      public static string ObtenerTipoDeVentas()
      {
          return ObtenerColeccionObjeto(typeof(TipoDeVenta));
      }

      public static string ObtenerTipoDeVenta(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(TipoDeVenta));
      }
      public static void ActualizarTipoDeVenta(int Oid, string Descripcion)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "Descripcion", Valor = Descripcion });


          ActualizarObjeto(Oid, typeof(TipoDeVenta), CamposActualizar);
      }
      #endregion

      #region DatosEmpresa
      public static void InsertarDatosEmpresa(string NombreEmpresa, string Direccion, int Telefono, string Ciudad, string Estado, int CodigoPostal, string Colonia, string RFC)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "NombreEmpresa", Valor = NombreEmpresa });
          CamposInsertar.Add(new Campos() { Campo = "Direccion", Valor = Direccion });
          CamposInsertar.Add(new Campos() { Campo = "Telefono", Valor = Telefono });
          CamposInsertar.Add(new Campos() { Campo = "Ciudad", Valor = Ciudad });
          CamposInsertar.Add(new Campos() { Campo = "Estado", Valor = Estado });
          CamposInsertar.Add(new Campos() { Campo = "CodigoPostal", Valor = CodigoPostal });
          CamposInsertar.Add(new Campos() { Campo = "Colonia", Valor = Colonia });
          CamposInsertar.Add(new Campos() { Campo = "RFC", Valor = RFC });
      

          InsertarObjeto(typeof(DatosEmpresa), CamposInsertar);
      }
      public static string ObtenerDatosEmpresas()
      {
          return ObtenerColeccionObjeto(typeof(DatosEmpresa));
      }

      public static string ObtenerDatosEmpresa(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(DatosEmpresa));
      }
      public static void ActualizarDatosEmpresa(int Oid, string NombreEmpresa, string Direccion, int Telefono, string Ciudad, string Estado, int CodigoPostal, string Colonia, string RFC)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "NombreEmpresa", Valor = NombreEmpresa });
          CamposActualizar.Add(new Campos() { Campo = "Direccion", Valor = Direccion });
          CamposActualizar.Add(new Campos() { Campo = "Telefono", Valor = Telefono });
          CamposActualizar.Add(new Campos() { Campo = "Ciudad", Valor = Ciudad });
          CamposActualizar.Add(new Campos() { Campo = "Estado", Valor = Estado });
          CamposActualizar.Add(new Campos() { Campo = "CodigoPostal", Valor = CodigoPostal });
          CamposActualizar.Add(new Campos() { Campo = "Colonia", Valor = Colonia });
          CamposActualizar.Add(new Campos() { Campo = "RFC", Valor = RFC });


          ActualizarObjeto(Oid, typeof(DatosEmpresa), CamposActualizar);
      }
      #endregion 
    
      #region DetalleVentas
      public static void InsertarDetalleVentas(int OidVenta, int OidProducto, int Cantidad, decimal PrecioUnitario, decimal IVA)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "OidVenta", Valor = OidVenta });
          CamposInsertar.Add(new Campos() { Campo = "OidProducto", Valor = OidProducto });
          CamposInsertar.Add(new Campos() { Campo = "Cantidad", Valor = Cantidad });
          CamposInsertar.Add(new Campos() { Campo = "PrecioUnitario", Valor = PrecioUnitario });
          CamposInsertar.Add(new Campos() { Campo = "IVA", Valor = IVA });


          InsertarObjeto(typeof(DetalleVentas), CamposInsertar);
      }
      public static string ObtenerDetalleVentas()
      {
          return ObtenerColeccionObjeto(typeof(DetalleVentas));
      }

      public static string ObtenerDetalleVenta(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(DetalleVentas));
      }
      public static void ActualizarDetalleVentas(int Oid, int OidVenta, int OidProducto, int Cantidad, decimal PrecioUnitario, decimal IVA)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "OidVenta", Valor = OidVenta });
          CamposActualizar.Add(new Campos() { Campo = "OidProducto", Valor = OidProducto });
          CamposActualizar.Add(new Campos() { Campo = "Cantidad", Valor = Cantidad });
          CamposActualizar.Add(new Campos() { Campo = "PrecioUnitario", Valor = PrecioUnitario });
          CamposActualizar.Add(new Campos() { Campo = "IVA", Valor = IVA });


          ActualizarObjeto(Oid, typeof(DetalleVentas), CamposActualizar);
      }
      #endregion

      #region Promocion
      public static void InsertarPromocion(int OidProducto, string NombrePromocion, decimal ValorNormal, float Descuento, decimal ValorFinal, DateTime FechaInicio, DateTime FechaFinal)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "OidProducto", Valor = OidProducto });
          CamposInsertar.Add(new Campos() { Campo = "NombrePromocion", Valor = NombrePromocion });
          CamposInsertar.Add(new Campos() { Campo = "ValorNormal", Valor = ValorNormal });
          CamposInsertar.Add(new Campos() { Campo = "Descuento", Valor = Descuento });
          CamposInsertar.Add(new Campos() { Campo = "ValorFinal", Valor = ValorFinal });
          CamposInsertar.Add(new Campos() { Campo = "FechaInicio", Valor = FechaInicio });
          CamposInsertar.Add(new Campos() { Campo = "FechaFinal", Valor = FechaFinal });


          InsertarObjeto(typeof(Promocion), CamposInsertar);
      }
      public static string ObtenerPromociones()
      {
          return ObtenerColeccionObjeto(typeof(Promocion));
      }

      public static string ObtenerPromocion(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(Promocion));
      }
      public static void ActualizarPromocion(int Oid, int OidProducto, string NombrePromocion, decimal ValorNormal, float Descuento, decimal ValorFinal, DateTime FechaInicio, DateTime FechaFinal)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "OidProducto", Valor = OidProducto });
          CamposActualizar.Add(new Campos() { Campo = "NombrePromocion", Valor = NombrePromocion });
          CamposActualizar.Add(new Campos() { Campo = "ValorNormal", Valor = ValorNormal });
          CamposActualizar.Add(new Campos() { Campo = "Descuento", Valor = Descuento });
          CamposActualizar.Add(new Campos() { Campo = "ValorFinal", Valor = ValorFinal });
          CamposActualizar.Add(new Campos() { Campo = "FechaInicio", Valor = FechaInicio });
          CamposActualizar.Add(new Campos() { Campo = "FechaFinal", Valor = FechaFinal });


          ActualizarObjeto(Oid, typeof(Promocion), CamposActualizar);
      }
      #endregion

      #region TempVentas
      public static void InsertarTempVentas(int OidProducto, int OidUsuario, int Cantidad, decimal PrecioUnitario, decimal IVA)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "OidProducto", Valor = OidProducto });
          CamposInsertar.Add(new Campos() { Campo = "OidUsuario", Valor = OidUsuario });
          CamposInsertar.Add(new Campos() { Campo = "Cantidad", Valor = Cantidad });
          CamposInsertar.Add(new Campos() { Campo = "PrecioUnitario", Valor = PrecioUnitario });
          CamposInsertar.Add(new Campos() { Campo = "IVA", Valor = IVA });


          InsertarObjeto(typeof(TempVentas), CamposInsertar);
      }
      public static string ObtenerTempVentas()
      {
          return ObtenerColeccionObjeto(typeof(TempVentas));
      }
      public static string ObtenerTempVenta(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(TempVentas));
      }

      public static void ActualizarTempVentas(int Oid, int OidProducto, int OidUsuario, int Cantidad, decimal PrecioUnitario, decimal IVA)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "OidProducto", Valor = OidProducto });
          CamposActualizar.Add(new Campos() { Campo = "OidUsuario", Valor = OidUsuario });
          CamposActualizar.Add(new Campos() { Campo = "Cantidad", Valor = Cantidad });
          CamposActualizar.Add(new Campos() { Campo = "PrecioUnitario", Valor = PrecioUnitario });
          CamposActualizar.Add(new Campos() { Campo = "IVA", Valor = IVA });


          ActualizarObjeto(Oid, typeof(TempVentas), CamposActualizar);
      }
      #endregion

      #region Ventas
      public static void InsertarVentas(int Folio, DateTime Fecha, int OidUsuario, decimal Total, int Caja, int Cliente, int OidTipoDePago)
      {
          List<Campos> CamposInsertar = new List<Campos>();
          CamposInsertar.Add(new Campos() { Campo = "Folio", Valor = Folio });
          CamposInsertar.Add(new Campos() { Campo = "Fecha", Valor = Fecha });
          CamposInsertar.Add(new Campos() { Campo = "OidUsuario", Valor = OidUsuario });
          CamposInsertar.Add(new Campos() { Campo = "Total", Valor = Total });
          CamposInsertar.Add(new Campos() { Campo = "Caja", Valor = Caja });
          CamposInsertar.Add(new Campos() { Campo = "Cliente", Valor = Cliente });
          CamposInsertar.Add(new Campos() { Campo = "OidTipoDePago", Valor = OidTipoDePago });


          InsertarObjeto(typeof(Ventas), CamposInsertar);
      }
      public static string ObtenerVentas()
      {
          return ObtenerColeccionObjeto(typeof(Ventas));
      }

      public static string ObtenerVenta(int Oid)
      {
          return ObetenerObjeto(Oid, typeof(Ventas));
      }

      public static void ActualizarVentas(int Oid, int Folio, DateTime Fecha, int OidUsuario, decimal Total, int Caja, int Cliente, int OidTipoDePago)
      {
          List<Campos> CamposActualizar = new List<Campos>();
          CamposActualizar.Add(new Campos() { Campo = "Folio", Valor = Folio });
          CamposActualizar.Add(new Campos() { Campo = "Fecha", Valor = Fecha });
          CamposActualizar.Add(new Campos() { Campo = "OidUsuario", Valor = OidUsuario });
          CamposActualizar.Add(new Campos() { Campo = "Total", Valor = Total });
          CamposActualizar.Add(new Campos() { Campo = "Caja", Valor = Caja });
          CamposActualizar.Add(new Campos() { Campo = "Cliente", Valor = Cliente });
          CamposActualizar.Add(new Campos() { Campo = "OidTipoDePago", Valor = OidTipoDePago });


          ActualizarObjeto(Oid, typeof(Ventas), CamposActualizar);
      }
      #endregion


    }
}
